(debian-policy.info)Introduction<2>


Next: Writing the scripts Up: System run levels and init d scripts
Enter node , (file) or (file)node

9.3.1 Introduction
------------------

The ‘/etc/init.d’ directory contains the scripts executed by ‘init’ at
boot time and when the init state (or “runlevel”) is changed (see
‘init(8)’).

There are at least two different, yet functionally equivalent, ways of
handling these scripts.  For the sake of simplicity, this document
describes only the symbolic link method.  However, it must not be
assumed by maintainer scripts that this method is being used, and any
automated manipulation of the various runlevel behaviors by maintainer
scripts must be performed using ‘update-rc.d’ as described below and not
by manually installing or removing symlinks.  For information on the
implementation details of the other method, implemented in the ‘file-rc’
package, please refer to the documentation of that package.

These scripts are referenced by symbolic links in the ‘/etc/rcn.d’
directories.  When changing runlevels, ‘init’ looks in the directory
‘/etc/rcn.d’ for the scripts it should execute, where ‘n’ is the
runlevel that is being changed to, or ‘S’ for the boot-up scripts.

The names of the links all have the form ‘Smmscript’ or ‘Kmmscript’
where mm is a two-digit number and script is the name of the script
(this should be the same as the name of the actual script in
‘/etc/init.d’).

When ‘init’ changes runlevel first the targets of the links whose names
start with a ‘K’ are executed, each with the single argument ‘stop’,
followed by the scripts prefixed with an ‘S’, each with the single
argument ‘start’.  (The links are those in the ‘/etc/rcn.d’ directory
corresponding to the new runlevel.)  The ‘K’ links are responsible for
killing services and the ‘S’ link for starting services upon entering
the runlevel.

For example, if we are changing from runlevel 2 to runlevel 3, init will
first execute all of the ‘K’ prefixed scripts it finds in ‘/etc/rc3.d’,
and then all of the ‘S’ prefixed scripts in that directory.  The links
starting with ‘K’ will cause the referred-to file to be executed with an
argument of ‘stop’, and the ‘S’ links with an argument of ‘start’.

The two-digit number mm is used to determine the order in which to run
the scripts: low-numbered links have their scripts run first.  For
example, the ‘K20’ scripts will be executed before the ‘K30’ scripts.
This is used when a certain service must be started before another.  For
example, the name server ‘bind’ might need to be started before the news
server ‘inn’ so that ‘inn’ can set up its access lists.  In this case,
the script that starts ‘bind’ would have a lower number than the script
that starts ‘inn’ so that it runs first:

     /etc/rc2.d/S17bind
     /etc/rc2.d/S70inn

The two runlevels 0 (halt) and 6 (reboot) are slightly different.  In
these runlevels, the links with an ‘S’ prefix are still called after
those with a ‘K’ prefix, but they too are called with the single
argument ‘stop’.


automatically generated by info2www version 1.2.2.9